package com.ruoyi.member.service;

import java.util.List;
import com.ruoyi.member.domain.MemberLevel;

/**
 * 会员等级Service接口
 * 
 * @author ruoyi
 */
public interface IMemberLevelService {
    /**
     * 查询会员等级列表
     * 
     * @param memberLevel 会员等级信息
     * @return 会员等级集合
     */
    public List<MemberLevel> selectMemberLevelList(MemberLevel memberLevel);

    /**
     * 查询所有会员等级
     * 
     * @return 会员等级列表
     */
    public List<MemberLevel> selectMemberLevelAll();

    /**
     * 通过等级ID查询会员等级
     * 
     * @param levelId 等级ID
     * @return 会员等级对象信息
     */
    public MemberLevel selectMemberLevelById(Integer levelId);

    /**
     * 根据积分获取对应等级
     * 
     * @param points 积分
     * @return 会员等级对象信息
     */
    public MemberLevel selectMemberLevelByPoints(Integer points);

    /**
     * 新增会员等级
     * 
     * @param memberLevel 会员等级信息
     * @return 结果
     */
    public int insertMemberLevel(MemberLevel memberLevel);

    /**
     * 修改会员等级
     * 
     * @param memberLevel 会员等级信息
     * @return 结果
     */
    public int updateMemberLevel(MemberLevel memberLevel);

    /**
     * 修改会员等级状态
     * 
     * @param memberLevel 会员等级信息
     * @return 结果
     */
    public int updateMemberLevelStatus(MemberLevel memberLevel);

    /**
     * 校验等级名称是否唯一
     * 
     * @param memberLevel 会员等级信息
     * @return 结果
     */
    public boolean checkLevelNameUnique(MemberLevel memberLevel);

    /**
     * 校验等级值是否唯一
     * 
     * @param memberLevel 会员等级信息
     * @return 结果
     */
    public boolean checkLevelValueUnique(MemberLevel memberLevel);

    /**
     * 删除会员等级信息
     * 
     * @param levelId 等级ID
     * @return 结果
     */
    public int deleteMemberLevelById(Integer levelId);

    /**
     * 批量删除会员等级信息
     * 
     * @param levelIds 需要删除的等级ID
     * @return 结果
     */
    public int deleteMemberLevelByIds(Integer[] levelIds);
} 